/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：DeviceLabelLocator.js<br>
 * 日期：2016年10月22日<br>
 * 作者: 王志远<br>
 * 功能：器件标签定位器<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.DeviceLabelLocator<br>
 * 类型功能：器件盒子图元<br>
 * 接口函数：<br>
 */
Rainier.UI.V2.DeviceLabelLocator = draw2d.layout.locator.SmartDraggableLocator.extend({
	
	/**
	 * 函数名称：Rainier.UI.V2.DeviceLabelLocator.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：property<br>
	 * 异常信息：<br>
	 */
	init:function(){
		this._super();
		
		this.offsetX = 0;
		this.offsetY = 0;
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.DeviceLabelLocator<br>
	 * 函数功能：重新定位<br>
	 * 异常信息：<br>
	 */
    relocate: function(index, figure){
        this._super(index, figure);
        //if(this.boundedCorners.init===true) {
            var parentVertices = figure.getParent().getBoundingBox().getVertices();
            var childVertices = figure.getBoundingBox().getVertices();
            var p1 = parentVertices.get(this.boundedCorners.parent);
            var p2 = childVertices.get(this.boundedCorners.child);

            var xOffset = p1.x - p2.x;
            var yOffset = p1.y - p2.y;
            
            if(xOffset === 0){
            	xOffset += this.offsetX;
            }
            
            if(yOffset === 0){
            	yOffset += this.offsetY;
            }
            var parentBoundingBox = figure.getParent().getBoundingBox();
            var targetBoundingBox = figure.getBoundingBox();
            var parentHight		  = parentBoundingBox.h;
            if(yOffset<parentHight){
            	figure.translate(xOffset - this.boundedCorners.xOffset, yOffset - this.boundedCorners.yOffset);            	
            }else{
            	xOffset			  = (parentBoundingBox.w - targetBoundingBox.w)/2;
            	figure.translate(xOffset - this.boundedCorners.xOffset, yOffset - this.boundedCorners.yOffset);            	            	
            }
        //}
    }
});
